Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bring PR up to date with ethereum-optimism:superchain-registry/main #1

Open
wants to merge 32 commits into
base: lattice-redstone
Choose a base branch
from

Conversation

geoknee
Copy link

@geoknee geoknee commented Sep 5, 2024

Adds optimismConfig and activates a validation check for that.

tessr and others added 30 commits August 27, 2024 07:54
* permit testnets and devnets to use newer contract versions

* tidy

* don't perform bytecode checking for testnets

* avoid reimporting superchain package
* feat(bindings): superchain crate

* feat(bindings): superchain crate
* fix(bindings): superchain registry import

* fix: alias prefices
* add silence for OP Mainnet Optimism_Portal_2_Params

* fix comment

* rework silences mechanism

* pull Granite time from superchain go module

* just lint-all
* capture optimism config when compressing genesis

* remove submodule

* move types down into superchain module

* lint

* pull in op-geth from ethereum-optimism/op-geth#371

* migrate existing genesis files to include default Optimism values

EIP1559Elasticity: 6, EIP1559Denominator: 50, EIP1559DenominatorCanyon: u64ptr(250)

special case for base sepolia, overrides elasticity paramter to be 10

Our diff bot should pick up any mistakes in this migration, we are aiming for a net zero overall diff to the effective genesis files

* zora sepolia: set EIP1559DenominatorCanyon: nil

We have the actual genesis of this chain on hand, so we know the correct value of this parameter

* update op-geth

* remove temporary workaround code

* break line for readability

* move Optimism config from genesis .json.gz to chain config toml files

* update op-geth

* fix add-chain e2e test

* update chain configs to include genesis.config.optimism field

* restore indentation

* fix value

* just codegen

* add genesis.config.optimism to devnets

* just codegen

* Update superchain/configs/sepolia/zora.toml

* fix: rust-bindings codegen

* un-nest Optimism config

* update op-geth

* update config files with new optimism structure

* just codegen

* remove duplicate data

* fixup op sepolia (missed it before)

* just codegen

---------

Co-authored-by: refcell <[email protected]>
* remove submodule

* add optimism-temporary to gitignore
to a commit on the main optimism branch
Remove link to bindings
* update batcher proposer

* ran codegen

---------

Co-authored-by: George Knee <[email protected]>
* validation: add Optimism Config test

* validation: use string const for test names

* validation: add explanatory comment for testOptimismConfig
* improve test failure output for testSuperchainConfig

* use lowercase getters for nonFaultProofs standard roles

this is the API for MCP release (1.3.0)

* Update validation/superchain-config_test.go

* just lint-all
This timestamp is for Wednesday, not Tuesday https://www.epochconverter.com/
* fix go.work version declaration

* add genesis predeploy test, validation metadata for chains 10,34443 and wire up

* undo accidental changes

* fix ci config

* add sepolia/worldcoin

* add worldchain

* some small fixes

chain 480 passes!

* change format of genesis creation command

* add nvm

* 4801 passes

* introduce monorepoBuildCommand artifact

* try removing source command

* install nvm

* no need to install just

* linting

* introduce boolean switch for using legacy deployments format

* Get mode, metal and zora genesis.allocs validation working (#496)

* introduce node_version

need to reexamine writeDeploymentsLegacy

* fix bug in writeDeploymentsLegacy

* fix declaration of legacy deployments and add note

* improve diff

* use hardhat Deployment type to pad data and avoid unmarshaling errors

e.g. on mode

* fix writeDeploymentsLegacy, mode now validates!

* remove note

* introduce  GenesisCreationCommand mapping

allows metadata file to choose from a list and have chainId automatically injected into command

* introduce BuilldCommand mapping

* op sepolia validates

* remove UseLegacyDeploymentsFormat

* remove op mainnet metadata for now

* remove op sepolia (it doesn't validate yet)

* echo nvm version

* just codegen

* load nvm

* fix

* try installing nvm in a step

* require node_version to be set

* just lint-all

* attempt to patch genesis creation source code

 to make validation work at a wider range of commits

* adds metal metadata -- validates!

* add zora metadata -- validates!

* Enhance `add-chain` tool to capture deploy config and monorep commit information  (#504)

* add-chain: ingest and store deploy-config and genesis-creation commit

* remove genesis-system-configs dir

we no longer use this

* add test data for deploy-config

* check errs properly

* link validation to add-chain

* fix up add-chain e2e tests

* simplify test side effect handling

* don't bother cleaning up -test genesis validation inputs

(They now don't end up bound into the validation package)

* tweak spacing

* prefer os.ModePerm over 0o777

* typo

* typo

* remove unused params

* use commented constants for metadata defaults

* fix clean-add-chain cmd

* use localised, gitignored optimism-temporary directory for genesis validation purposes (#507)

* Get genesis validation checks to run on CI (#529)

* switch to cimg/go:1.22.6-node docker image for genesis validation

* remove set -e

(nvm.sh exits with code 3, we can apparently just ignore that)

* use bash instead of sh

* use . instead of source

* install pnpm

* move optimism-temporary out from under superchain-registry

this seems to make go module resolution work as expected

* do not allow validate-genesis to timeout

* improve pipefail behaviour

we allow the scripts which load nvm and gvm to fail

* just lint-all

* remove all set -e behaviour

gives highest chance that validation can succeed

* stream output from test

helps with debugging, prevents timeouts on circleci

* try running as a matrix

* add base and base sepolia to genesis validation list (#530)

* add base sepolia to genesis validation list

* add base mainnet to genesis validation list

* Add validation metadata for Lisk mainnet + testnet (#531)

* temp:  gk/genadd lisk mainnet (revertme)

* add lisk metadata for genesis validation

* temp: add lisk sepolia (revertme)

* add genesis validation metadata for lisk sepolia

* Update .circleci/config.yml

* add comment

* just tidy-all

* harmonize op-geth version

* improve naming of ci steps

* dedupe perChainTestName

* remove temporary directory after tests run

* tidy up test script

* rename test

* rename commands

* add testGenesisAllocsMetadata

* use dynamic config building in CI (#534)

* use dynamic config building in CI

This works by having a small workflow run, compute the list of chain ids to run genesis validation checks on, and then modify a subsequent config file which circleci then runs.

* add comment

* fan in

* fix

* fix script

* Update .circleci/continue_config.yml

Co-authored-by: Vinod Damle <[email protected]>

---------

Co-authored-by: Vinod Damle <[email protected]>

* remove temporarily added chains (#535)

* git restore --source=main -- superchain

* just codegen

* just lint-all

* lint

* typo

* enhance comment

* swap op-node1 and op-node2

to retain chronological ordering

* add explainer about parallelism

* modify message in genesis-allocs-all-ok

* simplify patch file

* tweak go version in golang-validate-genesis-allocs job

* remove the test artifacts written to validationInputsDir

* don't forget we swapped opnode1<>opnode2

* fix another opnode1<>opnode2 permutation

* Revert "simplify patch file"

This reverts commit 9b7f6d8.

* fix op-node1/2 err

* add note about gvm

---------

Co-authored-by: Vinod Damle <[email protected]>
* circleci: use context to pass rpc urls

* circleci: add rpc context to hourly/nightly jobs

* add arena z testnet

* remove temporary files (fixmeup)

* update genesis_creation_commit

chose the one immediately before the l1StartingBlockTime

* upgrade validation code to cope with forge command

* just lint-all

* make go_version inference work even when in a subdir with no go.mod file

* run commands from the correct dirs

* fix typo

* git restore --source=main --staged --worktree superchain

* just codegen

* Update superchain/configs/mainnet/superchain.toml

---------

Co-authored-by: Vinod Damle <[email protected]>
* modify deploy-config validation input metadata for lisk mainnet

* run git submodule update during test

* trigger genesis validation recheck when deploy-config file changes
* add genesis validation metadata for mode sepolia

* update mode sepolia deploy-config
* CircleCI has two pipeline triggers named `nightly_build` and `hourly_build`.
* Remove workflow triggers and configure jobs to run on scheduled pipeline
  triggers .

Co-authored-by: Vinod Damle <[email protected]>
…rs (#551)

default scan buffer size in bufio is 64k, which limits the max size of any token
that can be scanned. Since diffs for the genesis alloc tool has to process large hex strings,
we supply a larger buffer to ensure that output/errors are piped in its entirety.

Co-authored-by: Vinod Damle <[email protected]>
…andidate to standard only category (#552)

* bring subtest interface in line with others

* move l1 securityconfigs test to standard-only

remove exclusions

* remove unecessary exclusions

* tidy up the way we apply exclusions

This is now handled in a single, central location. I introduced typing for subtests to make this very clear how to extend in future.

* just lint-all

* use type aliasing

* revert to usual Go fn declarations

* fix some stragglers
@@ -13,6 +13,11 @@ seq_window_size = 3600
max_sequencer_drift = 600
data_availability_type = "eth-da"

[optimism]
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure where this section comes from but these values are incorrect, you should be able to get the correct one from our deploy config file

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reran the just add-chain command and these values were updated 467e8d8

@@ -13,6 +13,11 @@ seq_window_size = 3600
max_sequencer_drift = 600
data_availability_type = "eth-da"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is still wrong as well

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for highlighting.

I think this is because of the renaming breaking change -- did you migrate your rollup.json yet?
https://docs.optimism.io/builders/chain-operators/features/alt-da-mode#modify-rollupjson-config

I have filed a new issue ethereum-optimism#557 so we can do a better job communicating this.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I migrated the rollup.json and reran the add-chain command here 467e8d8

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants